package com.gt.dao.user;

import com.gt.entity.user.User;

import java.util.HashMap;
import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 用户DAO接口
 * @author why
 */
@Mapper
public interface UserDAO {

	// Methods

   /**
	* 插入用户
	* @param user 参数实体
	* @return id 插入后的数据库主键值
	*/
	public Long insert(User user);

   /**
	* 删除用户
	* @param id 主键值
	*/
	public void delete(Long id);

   /**
	* 更新用户
	* @param user 参数实体
	*/
	public void update(User user);

   /**
	* 主键查询用户
	* @param id 主键值
	* @return User 实体
	*/
	public User selectById(Long id);

   /**
	* 根据条件查询用户列表
	* @param user 参数实体
	* @return List<User> 实体List
	*/
	public List<User> selectList(User user);

	/**
	 * 根据邮箱获取用户信息
	 * @param userName
	 * @return
	 */
	public User getUserByEmail(String userName);

	/**
	 * 根据apikey获取用户信息
	 * @param params
	 * @return
	 */
	public User selectUserByApikey(HashMap params);



}